package org.dromara.third.convert.enterprise.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 企业信息数据传输对象（DTO）
 * 用于封装企业基础信息、多面区域等核心数据
 */
@Data
public class EnterpriseFullDTO {

    /**
     * 1. 雪花主键
     * 说明：全局唯一标识，采用雪花算法生成的Long类型ID
     */
    private Long id;

    /**
     * 2. 企业名称
     * 说明：企业完整法定名称，不可为空
     */
    private String qymc;

    /**
     * 3. 企业简称
     * 说明：企业常用简称，用于简化显示，不可为空
     */
    private String qyjc;

    /**
     * 4. 统一社会信用代码
     * 说明：企业唯一法定身份代码（18位），不可为空
     */
    private String yshxydm;

    /**
     * 5. 企业法人名称
     * 说明：企业法定代表人姓名，不可为空
     */
    private String frmc;

    /**
     * 6. 企业法人联系方式
     * 说明：法定代表人的联系电话/邮箱等，不可为空
     */
    private String frlxfs;

    /**
     * 7. 生产经营地址
     * 说明：企业实际生产经营的详细地址，不可为空
     */
    private String addr;

    /**
     * 8. 多面区域集合
     * 说明：企业关联的多个地理区域信息，不可为空，元素类型为MultiGeoAreaDTO
     */
    private List<MultiGeoAreaDTO> dqyhj;

    /**
     * 9. 删除标志
     * 说明：0-正常（未删除），1-已删除；不可为空，默认值建议设为"0"
     */
    private String delFlag;

    /**
     * 10. 创建时间
     * 说明：数据创建时间，格式为yyyy-MM-dd HH:mm:ss，不可为空
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String createTime;

    /**
     * 11. 创建人名称
     * 说明：数据创建者的姓名，不可为空
     */
    private Long createBy;

    /**
     * 12. 最后修改时间
     * 说明：数据最后更新时间，格式为yyyy-MM-dd HH:mm:ss；新创建数据与createTime相同，不可为空
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 13. 更新人名称
     * 说明：数据最后更新者的姓名，不可为空
     */
    private Long updateBy;
}
